
182
{"LP", str(map(paramVals[0], 0, 1, 6, 8))},
{"RP", str(map(paramVals[1], 0, 1, 1.1, 1.26))},
{"LL", str(map(paramVals[2], 0, 1, 1, 1.4))},
{"RL", str(map(paramVals[3], 0, 1, 1.2, 1.45))},
{"LT", str(map(paramVals[4], 0, 1, 1, 1.4))},
{"RT", str(map(paramVals[5], 0, 1, 1.1, 1.2))},
{"BE", str(map(paramVals[6], 0, 1, -1, -3))},
{"AN", str(map(paramVals[7], 0, 1, 35, 60))},
{"ANN", str(map(paramVals[8], 0, 1, 30, 85))},
{"LO", str(map(paramVals[9], 0, 1, 1, 4))}};
Parameters parameters = new Parameters(paramDefs);
Grammar constructedGrammar = new Grammar(axiom, productions,
parameters, 60, 1);
return constructedGrammar;
} else if (template.equals("Tulip")) {
/*must be tweaked with sliders to resemble tulip tree
not included in search */
String axiom = "{.S(0)}";
String [][]productions = {
{"S(t)", "Z(t,LO)"},
{"Z(t,i)", "!(6)[-(AN)A(t)][P(t+1,i-1)][+(AN)A(t)]", "i>=0"},
{"P(t,i)", "!(6)G(LP,RP)[-(AN)A(t)][P(t+1,i-1)][+(AN)A(t)]", "i>=0"},
{"A(t)", "!(4)G(LL,RL)[-(ANN)L(t-1).][A(t+1)][+(ANN)L(t-1).]",
"t>=BE"},
{"L(t)", "!(3)G(LT,RT)L(t-1)", "t>=BE"},
{"G(s,r)", "G(s*r, r)"}};
String [][]paramDefs = {
{"LP", str(map(paramVals[0], 0, 1, 6, 8))},
{"RP", str(map(paramVals[1], 0, 1, 1.1, 1.26))},
{"LL", str(map(paramVals[2], 0, 1, 1, 4))},
{"RL", str(map(paramVals[3], 0, 1, 1, 1.5))},
{"LT", str(map(paramVals[4], 0, 1, 1, 1.6))},
{"RT", str(map(paramVals[5], 0, 1, 1.1, 1.5))},
{"BE", str(map(paramVals[6], 0, 1, -1, -3))},
{"AN", str(map(paramVals[7], 0, 1, 35, 60))},
{"ANN", str(map(paramVals[8], 0, 1, 30, 85))},
{"LO", str(map(paramVals[9], 0, 1, 1, 4))}};
Parameters parameters = new Parameters(paramDefs);
Grammar constructedGrammar = new Grammar(axiom, productions,
parameters, 60, 1);
return constructedGrammar;
} else if (template.equals("ComPalm")) {
//compound palmate leaf, not in search
String axiom = "{.S(0)}";
String [][]productions = {
{"S(t)", "[+(ANN)+(ANN)P(t)].[+(ANN)P(t)].[P(t)].[-(ANN)P(t)].[-
(ANN)-(ANN)P(t)]"},
{"P(t)", "!(5)G(LP,RP)[-(AN)L(t).][P(t+1)][+(AN)L(t).]"},
{"L(t)", "!(2)G(LL,RL)L(t-1)", "t>=BE"},
{"G(s,r)", "G(s*r, r)"}};
String [][]paramDefs = {
{"LP", str(map(paramVals[0], 0, 1, 1.2, 3))},
{"RP", str(map(paramVals[1], 0, 1, 1.1, 1.25))},
{"LL", str(map(paramVals[2], 0, 1, 1.1, 2))},
{"RL", str(map(paramVals[3], 0, 1, 1, 1.5))},